topics

全部话题 - 话题: 浮点数
1 2 3 4 5 末页 (共8页)
c***d
发帖数: 996
1
来自主题: Programming版 - [合集] 关于浮点数计算和underflow
☆─────────────────────────────────────☆
digital (你是疯儿我是傻?) 于 (Sun Aug 12 06:09:43 2007) 提到:
我原来的分析不是很严谨,现修改重发如下:
前面看到有人说浮点数计算和underflow的问题,
说是两个相近的浮点数相减不好,有人说会产生underflow,
有人说会损失有效数字(精度)。
http://www.mitbbs.com/article_t/Programming/24172384.html
我觉得是相近的数相减只有在很小的范围内才可能发生下溢出。
相反,我觉得浮点数的underflow更多可能是由除法(或者小数点
相对向左移动)导致的吧,因为除法直接导致指数部分的相减,
减到运算结果的指数部分那个整数的补码表示首位变正产生下溢。
而加减法,则是指数部分小的那个数要损失有效数字(精度)的。
而且是两个数字相差越大的话,那个小的数字的精度损失越严重。
反而是两个数字越相近的话,他们的减法运算的有效数字位数
的损失越小吧。我觉得通常要"舍”也是舍小的那个数。
同等精度的浮点数做加减,其
O*******d
发帖数: 20343
2
来自主题: Programming版 - 浮点数运算等于0的问题
浮点数计算结果判断,不要用==。 一般用一个小范围来判断。两个相同值的浮点数相
加,和同一个值的浮点数乘以2,结果一般不会一样的。 就是a + a一般不等于 a * 2.
0, 但结果非常接近。 a - a不一定是0,但非常接近0。 我以前用过一个compiler,
写的程序运行结果预期是0的,变成一个几千次方的极大数。原因是指数部分从极负变
成极正。 类似例子是8bit的整数减法,-127 - 1 == 128.
s*****k
发帖数: 604
3
来自主题: Programming版 - 浮点数运算等于0的问题
碰到一个非常困惑的问题
比如有一个浮点正数数组a[],
然后我通过一个for循环找到这个数组里面最小的数,
赋值为b,
然后for循环把a里每个数都减去这个b,
得到新的a.
那么这a[]里面一定有一个为0.0
我用 a[i]==0.0 来找这个index i,
发现有时候找不到,原来有时候减完b后
的a[]本来应该为0.0的那个数是一个非常小的数,而不等于0.0
请问有经验的人说说这个是我的程序出错呢,
还是新的那个a[]里最小的那个数有可能不等于0
浮点数运算难道 会有 a-a 不等于0的情况吗?
r**h
发帖数: 1288
4
来自主题: JobHunting版 - 比较两个两个浮点数
比较浮点数不能用 ==
这个是常识了吧。。。
要判断两个浮点数相等,应该用(f1-f2)
p*********w
发帖数: 23432
5
来自主题: Software版 - 求助一个32bit 浮点数 解密问题
你就先反过来,看看带小数的浮点数的表达方式
比如第一个 0.647,转换成浮点数是什么样的。
然后和第一排的数字对比一下,也许就有结果了。
w*******x
发帖数: 489
6
【 以下文字转载自 Computation 讨论区 】
发信人: woshialex (Qi), 信区: Computation
标 题: 有人知道浮点数的压缩算法吗?有损也没关系
发信站: BBS 未名空间站 (Sat Oct 23 10:12:16 2010, 美东)
我的问题里头内存严重不够用,所以需要把很多浮点数数组(单精度吧)压缩,然后调
用的时候在内存里头一个数组一个数
组的解压缩。
有人知道有效的算法吗?能压缩几倍?即使适当的loss也没关系。数据有大片区域比较
平滑。
谢谢!
t******r
发帖数: 16
7
来自主题: Software版 - 求助一个32bit 浮点数 解密问题
一个项目中的卡壳问题:
从通讯设备我收到一些数据。现在知道左边一栏是16进制浮点数, 右边一栏是相应的
十进制数值
3F25A1CB4007DF3B 0.647
3F25604240079DB2 0.646
3F1DB22D40015810 0.616
3F10A3D73FED4FDF 0.565
3F0F5C293FEB22D1 0.560
3F0CCCCD3FE6E979 0.550
3F0A3D713FE2D0E5 0.540
问题是:怎么以左边的数为输入而得到右边的值?
我觉得左边一列其实是两组数值:
3F25A1CB 4007DF3B 0.647 2.123
3F256042 40079DB2 0.646 2.119
3F1DB22D 40015810 0.616 2.021
3F10A3D7 3FED4FDF 0.565 1.854
3F0F5C29 3FEB22D1 0.560 1.837
3F0CCCCD 3FE6E979 0.550 1.804
3F0A3D71 3FE2D0E5
p********h
发帖数: 166
8
来自主题: Computation版 - 浮点数判断相等
浮点数是不是完全没有办法判断相等的情况。
s*****k
发帖数: 604
9
来自主题: Programming版 - 浮点数运算等于0的问题
刚才找到了一篇讲float-point arithmetic
的文章,在这里
http://hal.archives-ouvertes.fr/hal-00128124/en/
没工夫细看。但是下面这段话(在第二页)
里面讲的浮点计算的pitfall可能好多人都不知道
第二条说浮点计算不是deterministic的。
这让我想起以前好像看一个c faq里面说
计算sin(x)也不是deterministic,也就是说你在程序的两个地方
对同一个x算sin(x)的值是不一样的,当时没看懂。
我以前只当float计算就是要注意rounding error,
用abs(x-y) 现在看来好像不是
Despite, or perhaps because of, the prevalence of “IEEE-compliant” systems,
there exist a number of myths of what IEEE-compliance really entails from
the
point of vie
w*******x
发帖数: 489
10
我的问题里头内存严重不够用,所以需要把很多浮点数数组(单精度吧)压缩,然后调
用的时候在内存里头一个数组一个数
组的解压缩。
有人知道有效的算法吗?能压缩几倍?即使适当的loss也没关系。数据有大片区域比较
平滑。
谢谢!
y****g
发帖数: 36950
11
聪明的程度决定浮点数精确多少位,属于战术范畴。
智慧是通过模糊的估算迅速判断出今后很长一段时间的利益得失。
很会下棋的人背棋谱,精确到每一步的计算,但是不敢在棋局上用模糊的概念来判断得
失,但是人生比棋局复杂很多,没办法每一步都能计算出来,所以只能靠模糊的判断。
比如是否出国,选择专业等等。
按照下棋的方式判断人生,往往会人算不如天算。
U********d
发帖数: 577
12
来自主题: Programming版 - 浮点数运算等于0的问题
浮点判零是一个经典问题啊,一定不能a==0.0,应该用类似于if(a<10e-20 && a>-10e-
20)的条件判断。
至于原因嘛……嘿嘿,不说。
f*****Q
发帖数: 1912
13
来自主题: Programming版 - 浮点数运算等于0的问题
浮点运算还真有可能。
a****l
发帖数: 8211
14
来自主题: Programming版 - 浮点数运算等于0的问题
正如大家猜测的,原因是有其他的中间过程,你的"抽象"其实就把浮点的问题给抽象掉了.
a****l
发帖数: 8211
15
来自主题: Programming版 - 浮点数运算等于0的问题
其实他的结论"同一个计算的结果可能是不同的"又对又不对.的确,x+y=z即使x,y是相同
的结果z也可能是不同的,但是原因是源代码和执行代码的区别,而不是说浮点计算的结
果在不同的时候会不同(针对硬件出来的结果而言).他说了很多时间,其实就是说,不要
光看源代码就说"计算值应该是多少"或者说"程序的路径应该是怎样的",因为有很多东
西可能会让这东西变化.
h****r
发帖数: 2056
16
如果有很多浮点除法运算, Newton–Raphson division就很有帮助了。
也可以事先生成reciprocal表,然后就简单了。
s*****k
发帖数: 604
17
来自主题: Programming版 - 浮点数运算等于0的问题
我用的是cygwin 里面的 gcc 3.4.4
现在发现只要把 -Ox 的优化参数去掉,
就可以用 a[i]==0.0
加上优化选项出来的a[i]最小的那个数是个量级是
10^-15 到 10^-18 的一个很小的数

2.
t******n
发帖数: 2939
18
☆─────────────────────────────────────☆
l63 (l63) 于 (Thu May 23 00:34:22 2013, 美东) 提到:
假设素数只有有限个, 记为 p_1,p_2,...,p_k
考察 N = p_1*p_2*...*p_k + 1
可知: 对于任意i = 1,2,3,...,k, p_i 不能整除 N
由素数的定义:
a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除
可知: N是素数
这与素数只有p_1,p_2,...,p_k矛盾.
故假设不成立.
所以素数有无穷多个.
☆─────────────────────────────────────☆
l63 (l63) 于 (Thu May 23 00:37:03 2013, 美东) 提到:
在承认素数的这个等价定义 (即 a是素数 <=> a是大于1的自然数, 且a不被任何小于a
的素数整除) 的前提下, 居然有人会认为这个证明是错的, 或者是不完备的.
我实在不能理解.
求问一下大家, 是不是有的人的脑子天生有缺陷, 根本怎么教都不会明白... 阅读全帖
t*******r
发帖数: 22634
19
码工不处理无限集,但码工会考虑整型数边界的问题,浮点数要考虑的
更多,参见 IEEE 浮点标准。。。另外浮点数的数学程序不少要考虑
computational stable 的问题,也就是如果要是一个大浮点数
加一个小浮点数,重复抽插 N 次之后,结果可能很悲催。。。
s*******e
发帖数: 1389
20
围棋算法多少还能理解,人工智能就难多了。转载一篇文章:
基于神经网络的人机对抗人工智能系统
作者:Harreke
摘要
人工智能是一门科学名称。自电子计算机发明后不久,人工智能学科即宣布创立,其目
的就是要模拟人类的智力活动机制来改进计算机的软件硬件构成,使他们掌握一种或多
种人的智能,以便在各种领域内有效替代人的脑力劳动,特别是解决用传统软硬件方法
难以解决的问题,如模式识别,复杂的控制行为或对海量的数据进行实时评估等。
所谓人工智能,就是由人工建立的硬件或软件系统的智能,是无生命系统的智能。智能
是人类智力活动的能力,是一个抽象的概念。一个软件或硬件系统是否有智能,只能根
据它所表现出来的行为是否和人类某些行为相类似来做判断。
人工智能在计算机上的实现,有两种不同的方式。一种是采用传统的编程技术,使系统
呈现智能的效果,而不考虑所用方法是否与人或生物机体所用的方法相同。这种方法称
为工程学方法,它的编程方式虽然简单,智能效果显著,可是算法和程序一旦固定下来
,智能就很难再进一步提高。另一种是模拟法,它不仅要看智能效果,还要求实现方法
和人类或生物机体所用的方法相同或类似。人工神经网... 阅读全帖
X****r
发帖数: 3557
21
来自主题: Programming版 - double转换int的问题
因为28032400.000000本身并不是这个浮点数的正真的值(即使你把这个常数赋给浮点
变量)。浮点数的精度是有限的。正如一个整型变量不能精确地表述1.5一样,浮点变
量只能精确表述有限个特定的有理数,而不是任意有理数。这个浮点变量实际的值比
28032400.000000略小一点点,所以转换成整数就成了28032399了。
因此,千万不要假定以浮点类型存储的整数转换成整型后还是原来整数的值。
a****a
发帖数: 5763
22
随着CPU与GPU合并成技术发展的趋势,苹果开发出了OpenCL框架,能够进行高速并行处
理的能力使OpenCL成为了业界标准,被广泛应用。
最近几年,GPU的发展吸引了很多来自科学计算界人士的目光。GPU有稳定的市场推动力
—公众喜闻乐见的电子游戏产生了源源不断的升级GPU的需求—因此比CPU的更新步伐更
快。从技术上讲,GPU本身就是多核架构,高端显卡往往有五百多个核心,即使低端的
集成GPU也有二三十个核心,所以能够通过并行来高效处理成千上万的线程。同时,对
于科学技算中的浮点计算,GPU往往通过硬件加速使其效率比传统CPU更高,因为图形渲
染等工作基本都是浮点计算。
GPGPU浮出水面
早期的GPU只能执行固定的程序,而不开放给程序员编程。随着时代的发展,图像处理
有时需要对着色器进行编程以实现一些特效,因此需要程序员可以使用GPU的汇编语言
写简单的着色程序。这自然对程序员要求过高,所以一些高阶的着色语言又被GPU厂商
开发出来。比如微软和NVIDIA共同开发的Cg语言,就能为顶点和像素编写专门的着色程
序。这类技术虽然面向图形渲染工作者,却吸引了一小簇科学计算研究者的兴趣。... 阅读全帖
l********8
发帖数: 91
23
static key word: what is static in front of a function declaration? what is
static key word for a variable inside a function definition? what is static
keyword for a var outside a function definition.
对于变量而言,static的变量是放在静态存储区的(跟全局变量放在一起的),但是不
具备全局可见性,也就是只能在申明的函数中才能看到。
对于函数而言,static申明的函数没有全局可见性。
what is the difference pass by value or pass by reference. when to use them?
一般通过变量以及宏定义来进行数据的传递是为了方便调试。因为在调试时候,一个经
常用到的数据如果要进行修改的话只需要在宏定义或者变量申明的地方改一下就可以了。
what is const and volatile keywords for?
关键词cons... 阅读全帖
l********8
发帖数: 91
24
static key word: what is static in front of a function declaration? what is
static key word for a variable inside a function definition? what is static
keyword for a var outside a function definition.
对于变量而言,static的变量是放在静态存储区的(跟全局变量放在一起的),但是不
具备全局可见性,也就是只能在申明的函数中才能看到。
对于函数而言,static申明的函数没有全局可见性。
what is the difference pass by value or pass by reference. when to use them?
一般通过变量以及宏定义来进行数据的传递是为了方便调试。因为在调试时候,一个经
常用到的数据如果要进行修改的话只需要在宏定义或者变量申明的地方改一下就可以了。
what is const and volatile keywords for?
关键词cons... 阅读全帖
c****p
发帖数: 6474
25
来自主题: JobHunting版 - a silly question
这是一个思路,但是涉及到浮点数的存储方式。
如果假设IEEE 754标准的话,需要:
1.算出指数(以决定小数点的位置),涉及位操作和减法。
2.算出底数,涉及位操作,并且要把hiden leading 1也考虑进来。
综上,把二进制形式表示出来还是有可能的。
但是很难解决报error的问题。
3.72这个数就应该报error的,而且存成浮点数的值就已经和3.72有误差了,
要从内存中的浮点数表示判断是不是精确表示很困难。
g****t
发帖数: 31659
26
定常差分方程有解析解,就考虑什么实现可以让结果离解析解最近吧。
不考虑固定长度数了。就考虑IEEE浮点数吧。串联,并联,状态方程,
前后滤波等等各种实现里面,哪种实现可以使
|y的解析解-滤波器输出的IEEE浮点数y(t)|^2
10年内的积分最小?
已知u(t)带宽有限,每点有界。x^2=ax+b的解都在单位园内。
这个问题应该是well defined的吧br />
(如果这还不够,可以假设u(t)是三角函数的
线性组合。)
RLS跟我说的(1)好像没有关系。另外说到RLS,就算是浮点数,matlab,任何一种RLS
的实现都无法保证numerical stability。这个更不可靠。必须隔段时间reset或者作别
的经验主义前后处理。
其实我问这问题,是因为我不是数字滤波器的专家.
不了解常用必须的engineer fix,老怕自己弄出来的东西blow up了.
看看有没有fast solution,牺牲点性能也可以.

I wasn't clear about your problem. I assumed you've 8-bit ADC, but
proc... 阅读全帖
n**********2
发帖数: 648
27
【 以下文字转载自 Programming 讨论区 】
发信人: xykkkk (asdf), 信区: Programming
标 题: 老码农冒死揭开行业黑幕:如何编写无法维护的代码(zz)
发信站: BBS 未名空间站 (Fri Nov 28 13:28:27 2014, 美东)
如何编写无法维护的代码
让自己稳拿铁饭碗 ;-)
– Roedy Green(翻译版略有删节)
简介
永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无
能。 — 拿破仑
为了造福大众,在Java编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大
师写的代码极其难以维护,后继者就是想对它做最简单的修改都需要花上数年时间。而
且,如果你能对照秘籍潜心修炼,你甚至可以给自己弄个铁饭碗,因为除了你之外,没
人能维护你写的代码。再而且,如果你能练就秘籍中的全部招式,那么连你自己都无法
维护你的代码了!
(伯乐在线配图)
你不想练功过度走火入魔吧。那就不要让你的代码一眼看去就完全无法维护,只要它实
质上是那样就行了。否则,你的代码就有被重写或重构的风险!
总体原则
Quidquid... 阅读全帖
x****k
发帖数: 2932
28
如何编写无法维护的代码
让自己稳拿铁饭碗 ;-)
– Roedy Green(翻译版略有删节)
简介
永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无
能。 — 拿破仑
为了造福大众,在Java编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大
师写的代码极其难以维护,后继者就是想对它做最简单的修改都需要花上数年时间。而
且,如果你能对照秘籍潜心修炼,你甚至可以给自己弄个铁饭碗,因为除了你之外,没
人能维护你写的代码。再而且,如果你能练就秘籍中的全部招式,那么连你自己都无法
维护你的代码了!
(伯乐在线配图)
你不想练功过度走火入魔吧。那就不要让你的代码一眼看去就完全无法维护,只要它实
质上是那样就行了。否则,你的代码就有被重写或重构的风险!
总体原则
Quidquid latine dictum sit, altum sonatur.
(随便用拉丁文写点啥都会显得高大上。)
想挫败维护代码的程序员,你必须先明白他的思维方式。他接手了你的庞大程序,没有
时间把它全部读一遍,更别说理解它了。他无非是想快速找到修改代码的位置、改代码
、编译,然后就能交差,... 阅读全帖
h****r
发帖数: 2056
29
来自主题: JobHunting版 - MS 电面面经,攒人品
浮点数也可以比较啊,只是需要有精度的取舍,规定一下比到小数点后哪一位。
真怕浮点数的话,这里没必要用浮点代表吧,比如角度等于2/27的用2.27表示不就行了。
算法,又不是算术。
l******o
发帖数: 144
30
来自主题: JobHunting版 - MS 电面面经,攒人品
假定坐标是整数, 那么dy/dx是个分数, 约分. 然后两个分数相等仅当分子分母的绝对
值相等. 这里用绝对值是因为两个点可能在另一边.
此外, 不是O(N^2), 每个点作为圆心, 然后比较其他N个角度的话怎么说也要O(NlogN),
此后每个点重复一遍, 所以是O(N^2 logN)的.
比如说N个值, 不排序, O(N)怎么找重复的? 排序怎么说也要O(N logN).
别说什么hashtable, hashtable你只能说一般情况下是O(1), 最坏情况还是O(N), 所以
不能用O(1)来分析算法复杂度的.

浮点数也可以比较啊,只是需要有精度的取舍,规定一下比到小数点后哪一位。
真怕浮点数的话,这里没必要用浮点代表吧,比如角度等于2/27的用2.27表示不就行了。
算法,又不是算术。
a****l
发帖数: 8211
31
来自主题: Programming版 - double's equality
其实我觉得这个faq写的不完全对。两个浮点数相同的的话就是说二进制数是相同,这是
没有任何疑问的。不能直接比较的原因是计算有误差,就是说数学上应该相同的计算结
果计算机出来的可能是不同的,数学上应该是不同的计算结果计算机出来的可能是相同
的二进制数。所以这是一个“应用”的问题,而不是一个“语言”的问题。if (x == y)
本身没有任何问题而且是完全合理的,关键是使用的人要知道这到底是什么意思。两个
浮点数能否比较不应该是c语言应该考虑的问题,而是数值计算应该考虑的问题,而且数
值计算本身就是一个非常复杂的学科,是否相等是里面一个非常非常简单的入门问题.
http://www.cygnus-software.com/papers/comparingfloats/comparing
举个例子,如果要计算a/(b-c),怎么做?
float sample(float a, float b, float c)
{ if ( b==c ) {oops..} else return a/(b-c);}
当然还有其他的问题,但是这是数值计算里面讨论的了.
k*******d
发帖数: 1340
32
来自主题: Quant版 - 讨论几个 ihtw 大牛的题目
5就是merge sort吧,内存太小。 可以每10M的数据用quick sort排好存回到盘上,然
后就是merge sort
57照这个意思是可以了?32位整数就是从-2^31 -> 2^31-1吧
3. 要注意的是在浮点数格式下,有效数字是固定的,也就是说,越大的数,每个浮点
数对应的真实数的范围是越大的
b*******a
发帖数: 68
33
来自主题: JobHunting版 - 贡献几道面试题
看看我的想法有没有问题,谢谢。
1. 给定一串浮点数,要求转成string, 转化完成后要求假如要排序的话,string的顺
序和对应的原来数的排序一样。
浮点数字符串排序关键是比较函数,或者转换回数字比较,或者直接比较,只要是普通
的表达方法(即不是科学计数法之类),先处理+/-,然后比较小数点所在位置,最后
若位置相同,则依次比较数字字符不就可以了?
4. 有10个unsorted array, 分给10太不同的机器处理,这10台机器之间不能通信,但
可以和总机通信,如何求总的median. 如何减少数据量的传输。
每个node先遍历一遍,统计数字落在不同区间(可根据需要划分)的个数,然后各node
将此信息送到master,master就可以确定golbal medium在哪个区间,再回到各node,各
node进行第二遍scan,把此区间的数字送到master,master再划分更细区间,最后排序。
5. 每个电话号码都对应字母,打印出通过按号码能生成的所有valid的英文词,用作号
码里的单词用,比如1-800-432-JUNK里面的JUNK.
此题目似乎不是很清晰,如果是如... 阅读全帖
K*******i
发帖数: 399
34
来自主题: JobHunting版 - 二分法求sqrt有什么需要注意的?
貌似F经常出这个题,除了起始区间的选取,浮点数的相等比较,浮点数平方后可能溢出,迭代何时停止,负数,小于1的数, 判断同侧是用f(a) * f(b) > 0 还是拆分为f(a) > 0, f(b) > 0 或 f(a) < 0, f(b) < 0等等外,还有什么需要注意呢?
k****f
发帖数: 3794
35
来自主题: Programming版 - 数值计算里的几个损失精度的操作
其实两位就不要吵了。那个公式溢出的问题,确实是double数中有效位不够导致的
求和中,经常出现两个数(来自不同的n个数的乘积),相加却很小很小的。
把问题转成整数,已经用gmp的mpz_t解决,速度虽然慢了一些,还是比mpf_t快多了。
还好找了1千多个cpu分开算,不然要等死我了。
现在问题是误差是有一些的,不过数值上是很稳定的。不会正负号都不对的。
如果两位还有空,顺便看看这种分式逼近怎么做的。
一个浮点数a,可以用连分式式逼近a(n)/q(n),而且收敛很快的。是O(1/q(n)^2)
如果有2个浮点数a,b,怎么找两个逼近序列:
(a(n)/q(n),b(n)/q(n)),收敛到a和b的速度和连分式差不多的?
注意分母q(n)是相同的。
p**z
发帖数: 65
36
首先,我同意 Python 里的 name 也叫做 variable。Python 自己文档里面就是混用的
。但是它的真正行为确实是一个名字,跟其他 statically typed 语言的变量有所不同
。另外,原帖中 by value 和 by reference 的表述并不准确,因为那是我以 VB.NET
的行为来打比方的,并没有严格按照这两个术语的原意。
我简单看了一下 Python 和 Java 的文档,觉得它们还是有很大不同的。
对于 Python,可以看一下它的 language reference, 3.1. Objects, values and
types, 以及 4.1. Naming and binding。如果我理解没有错的话,Python 没有简单数
据类型,所有的数据都是对象。每个对象有自己的唯一的身份(不可改变),类型(不
可改变),内容(有些 immutable,比如整数,浮点数,字符串;有些 mutable,比如
list,dictionary)。Python 是 dynamic typing 的,就是说一个名字(变量)使用
前不用声明数据类型。它的实... 阅读全帖
f****a
发帖数: 351
37
Matrix宇宙论的三大痛脚就是:
Matrix浮点数会下溢出,浮点数和整数都会上溢出,熵增加。
下溢出会导致能量或者质量流失--这个没有观察到。
上溢出会导致数理方程偏微分路径积分失效,奇点成为质能漏斗--这个也没有观察到。
熵增加会导致Matrix被观察到。
y*d
发帖数: 2226
38
来自主题: Military版 - 《数学分析》是学啥的?

浮点是个球鸡巴有理数
有理数有无穷多个
32位浮点数只有2^32个,其中还有很多无意义的
64位浮点有2^64个,里面有更多的无意义的值
图灵机本身就只能有有限状态
别说是有理数了,连任意的自然数都不可能在计算机里表示
当然,其实,自然数集和有理数集一样大
s***h
发帖数: 487
39
你走火入魔了 。。。 数值计算理论的问题,是你迭代是用的是浮点数而不是实数 。
。。 而浮点数有舍入误差,造成数字噪音 。。。 如果你的方程系统的 condition
number 不行,就会导致数字噪音淹没了结果。
但在具体情况下,把问题给 well-pose / well-condition,本身就是个艺术。


: 这智商也出来上窜下跳

: 数值计算结果对不对当然可能不知道

: 比如,化学里面大量应用的分子动力学模型计算,由于无法理论上证明
ergodicity,所

: 得的任何结果都有fail的可能

x*******i
发帖数: 777
40
来自主题: JobHunting版 - 求助C/C++高手:一道音频编程题
Write a program for mixing soundfiles, with the following
characteristics:
写一个音频合并的程序,包括以下内容
(a) accepting any soundfile formats supported by libsndfile
输入的音频文件的格式要被libsndfile支持。
libsndfile :a crossplatform library for soundfile manipulation.
(b) taking only uncompressed PCM format, in any (integer or floating-
point)
precision (8-bit (signed/unsigned), 16-bit, 24-bit, 32-bit, floats,
doubles).
接受未经压缩过的PCM编码格式的音频,这些音频的量化精度为浮点数或者整数(每个
sample分为
1 -100 就是整数,每个sample的值只有100个可能; 每个sample 分为1.00-10... 阅读全帖
c*********t
发帖数: 2921
41
来自主题: JobHunting版 - a silly question
是不是先调用 float value = atof("3.72"),变成浮点数。
然后把浮点数value按照它在内存中的二进制打印出来?
就是把value弄成整数,然后写一个打印整数二进制的函数。
int i = *(int *)&value;
mybinprint(int i);
A***o
发帖数: 358
42
来自主题: JobHunting版 - Groupon 电面
第一个电面,感觉比想象稍微难,做题时间45-50分钟,只做了两题,剩下时间都在讨
论。
没NDA,那就积人品放出来
1. 输入一浮点数,返回浮点数开方
* 指出精度问题
* 给时间复杂度
* 实现了两个对数时间的算法
2. 一个无穷的整数流,假定数字无序没有重复,实现函数和数据结构求最近n=1百万
个数里的最大值,假定这个函数会被不断使用
* 设计了一个线性空间,对数时间的方法,写了几行伪代码,被打断,说行
* 让找更高效的数据结构,没想出来
感觉这家的管理有点混乱,其他家是hr先联系我,这个直接是招人那个组的经理,电话
的时候背景声音好大,说找不到会议室给我电话,他就坐在他的cubicle。
s***e
发帖数: 403
43
来自主题: JobHunting版 - Bloomberg 电面+onsite 。。已挂
我很好奇第三题怎么做。
很多时候浮点数都是不能精确表示的。
难道他的浮点数是两个整数组成的?
J*****a
发帖数: 46
44
来自主题: JobHunting版 - 请大牛解释一下leetcode新题
它自己解释的已经很清楚了 不错的思路 不过不可以处理浮点数
另一种做法是维护以 i 结尾的最大负数和最大正数 可以处理浮点数
t*******r
发帖数: 22634
45
来自主题: Parenting版 - 美国的数学教得杂但是太浅
或者这么说,以前那破 286,啥事都在 CPU 里面全干了。。。后来人们
发现这么搞速度上不去,于是搞了最先进的 Core2Duo Quad Core,里面
四个 core 并行,四条超级标量流水钱,N 个内置 FPU 浮点协处理单元,
外加 L1 / L2 / L3 高速缓存,还带 SIMD 向量计算指令。。。结果
有人跑过来,只看见 FPU,说你特么这 FPU 浮点协处理单元怎么
这么弱,除了算浮点数其他啥都不会干。但人家有 CPU,还有四个,
没看见?。。。另一人跑过来说,只看见 SIMD 指令,说你特么SIMD
向量指令为啥要 8 个数一起算,这么死板。但人家不是没有普通
标量指令是不是?。。。还有一个人跑过来,只看见 L1 / L2 / L3
缓存,说你特么这先进芯片是不是弱智,就只能暂时保存一下数据。
我都不说啥了。。。

t*******r
发帖数: 22634
46
码工的 C 程序所属 formal system 里,整数的 token,和浮点数
的 token,不是同一种 token,不能直接上加减乘除 operator,需要先用
另一种 operator,叫 type cast,把一种 token cast 成另一种 token
。。。所以你的问题根本不 valid。。。哈哈。。。
写程序的时候很多时候没写 cast,是因为 implicit cast 的存在。不等于
没有 type cast。
而且整数被零除产生 divide by zero 异常;浮点数被零除没有异常,结果
是 NaN。所以 3/0 和 3.0/0.0 不是一回事。。。也是一个侧面印证不是
一种 token,楼主搞晕了没?


"
H********g
发帖数: 43926
47
你这个宏我已经测试过了,就是在两个Do之间缺个j=2 。补上之后可以正常运行。
补上以后潜在的问题是会在碰到空格的时候会过早中止循环,建议直接写个while i<
7900, j<表3的长度。
另外如果你的温度是浮点数的话,注意浮点数比大小可能会出问题,可能需要round 一
下再比,或者规定一个允许的范围,比如写成 if abs(CodeS-CodeR)<0.0001。
j**********i
发帖数: 3758
48
来自主题: CS版 - vostro 230=银河1?2
浮点数矩阵操作计算不会吓唬人,这个精简算法很早以前就定型了。
说到底还是基本浮点运算的快慢和精度。而浮点运算实际上是用整数运算拼的。
说到底,还是整数运算的快慢。但是这里面有许多变化。NVIDIA GPU 现在很火,
但是不知道精度如何。
我只是做个初略的类比。国内的问题是自吹自擂,看看银河,曙光什么的升级快慢,
和国外大规模集成电路的升级速度是个极其相关的吻合。VOSTRO 230 到底和银河一号
怎么比是取决于集成的门电路的多少和设计。这个和编译器优化无关。

INC
O*******d
发帖数: 20343
49
来自主题: Programming版 - 请教个C++程序设计
一般用0到1之间的浮点数比较好。 把0,1区间分成几个小区间,
比如5个宽度相等的小区间,每个区间对应一个你选择的整数,就
可以得到5个出现概率相等的整数随机数。 调整区间的相对大小,
可以改变相应的概率。
用以下方法产生浮点数。 这只是方法之一
(double)rand() / RAND_MAX
m**********e
发帖数: 12525
50
这个N年前我老人家就实现了.变量X,Y可以是浮点数,数组,矩阵...,X*Y自动变为
浮点数乘,矩阵乘...
我老人家当年的目标是实现对用矩阵为变量的偏微分方程组直接进行运算,这样前台
整个运算简洁明了,每次矩阵运算直接写X*Y就行,复杂的全在后台
妈的最后发现事情比我想象得要复杂多了,上千个头文件看得眼睛都花了.花了
我整整一年时间才交差.
后来发现这纯粹是吃饱撑的,matlab里面改改就能用了.

1 2 3 4 5 末页 (共8页)